package es.udc.fbellas.j2ee.tiendaweb.model.usuariofacade.plain.actions;

import java.sql.Connection;

import es.udc.fbellas.j2ee.util.exceptions.InternalErrorException;
import es.udc.fbellas.j2ee.util.exceptions.InstanceNotFoundException;
import es.udc.fbellas.j2ee.util.sql.TransactionalPlainAction;
import es.udc.fbellas.j2ee.tiendaweb.model.usuario.TO.UsuarioProfileTO;
import es.udc.fbellas.j2ee.tiendaweb.model.usuario.DAO.SQLUsuarioProfileDAO;
import es.udc.fbellas.j2ee.tiendaweb.model.usuario.DAO.SQLUsuarioProfileDAOFactory;

public class ModificarUsuarioProfileAction 
    implements TransactionalPlainAction {

    private String loginName;
	private String nombre;
	private String apellidos;
	private String language;
	private String country;
	private String email;
    
    
    public ModificarUsuarioProfileAction(String loginName,
            String nombre, String apellidos, String email, String language, String country) {
        
        this.loginName = loginName;
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.language = language;
        this.country = country;
        this.email = email;
        
    }
    
    /**
     *
     * @return <code>null</code>
     */
    public Object execute(Connection connection) 
        throws InstanceNotFoundException, InternalErrorException {
                
        SQLUsuarioProfileDAO usuarioProfileDAO = SQLUsuarioProfileDAOFactory.getDAO();        
        UsuarioProfileTO usuarioProfileTO = usuarioProfileDAO.find(connection, 
            loginName);
                    
        usuarioProfileTO.setNombre(nombre);
        usuarioProfileTO.setApellidos(apellidos);
        usuarioProfileTO.setEmail(email);
        usuarioProfileTO.setLanguage(language);
        usuarioProfileTO.setCountry(country);
        usuarioProfileDAO.update(connection, usuarioProfileTO);
        
        return null;            

    }
    
    /* 
     * This class is tested by
     * "es.udc.fbellas.j2ee.miniportal.model.userfacade.delegate.
     * UserFacadeDelegateFactory".
     */    

}
